<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        //什么是解构赋值？
        //在es6中按照一定模式将数组或对象中的值提取出来并赋值给不同的变量，这一过程称为解构赋值

        let arr = [1,3,6,9,'Hello'];

        //es5:
        // let x = arr[0],
        //     y= arr[1],
        //     m=arr[2],
        //     n=arr[3],
        //     s=arr[4];
        // console.log(x,y,m,n,s);

        //es6:数组解构赋值语法：let [模式] = [数组]
        //注意：数组解构赋值时要注意模式中的变量先后顺序，因为数组是一个有序集合

        //1、数组的完全解构赋值：
       // let [x,y,m,n,s] = arr;
       // console.log(x,y,m,n,s,1111);


        //2、数组的不完全解构赋值：
        // let [,x,,y] = [11,66,88,'Yes OK'];
        // console.log(x,y);

        let [,y,,x] = [11,66,88,'Yes OK'];
        console.log(x,y);

        //3、数组解构失败：数组解构失败时的默认值为undefined
        
        let [,s,t] = [1,3]
        console.log(s,t);  //3 undefined


        //4、默认值：注意只有解构失败时默认值才生效
        let [,age=18,tel=110] = ['张三',20]
        console.log(age,tel);

        //5、数组的嵌套解构赋值：
        let arr3 = [1,3,['ok',88],5,100];
        let [,a,[,b],,c] = arr3;
        console.log(a,b,c);
        

    </script>
</head>
<body>
    
</body>
</html>